package MediciADistanza.Control.User.SpecificUserCTRL;

import Enum.XML_ELEMENT;
import MediciADistanza.Boundary.user.InterfacciaUtente;
import MediciADistanza.Boundary.user.SpecificUser.InterfacciaBaseNoST;
import MediciADistanza.Control.User.UtenteControl;
import MediciADistanza.Control.User.Module.AccediControl;
import MediciADistanza.Control.User.Module.RegistraUtenteControl;


/**
 * Gestisce le operazioni principale eseguite da un paziente
 * 
 * @author Andrea Iann&igrave;
 */
public class PazienteControl extends UtenteControl {
	/**
	 * Avvia l'applicazione per il paziente
	 */
	public PazienteControl(){
		getListaSpecializzazioni();
		avvia(ESEGUI_ACCESSO);
		finestraApp = new InterfacciaBaseNoST(this, interfacciaUtente, "Client Paziente");
	}
	/**
	 * effettua l'accesso utilizzando i dati presenti nell'ultima conferma
	 */
	@Override
	public void accedi() {
		// TODO Auto-generated method stub
		
	}
	/**
	 * Avvia un servizio
	 * 
	* <p>Valori Implementati:</p>
	 * <ul>
	 * <li>RICHIEDI_ASSISTENZA</li>
	 * <li>ESEGUI_ACCESSO</li>
	 * <li>REGISTRATI</li>
	 * <li>RETURN_HOME</li>
	 * <li>RESET_PSW</li>
	 * </ul>
	 */
	@Override
	public void avvia(int service) {
		// TODO Auto-generated method stub
		switch(service) {
		case RICHIEDI_ASSISTENZA:
			break;
		case ESEGUI_ACCESSO:
			moduleControl = new AccediControl(this,true);
			interfacciaUtente = moduleControl.getFrameModulo();
			if (finestraApp !=null)
				finestraApp.changeInterface(interfacciaUtente);
			break;
		case REGISTRATI:
			moduleControl = new RegistraUtenteControl(this);
			interfacciaUtente = moduleControl.getFrameModulo();
			finestraApp.changeInterface(interfacciaUtente);
			break;
		case RETURN_HOME:
			if (utente_Entity ==  null)
				avvia(ESEGUI_ACCESSO);
			else
				//Da fare
				interfacciaUtente = new InterfacciaUtente(null, this, null, null);
			break;
		case RESET_PSW:
			avviaRSTPSW();
			break;
		}
	}
	/**
	 * Imposta il tipo dell'utente
	 */
	@Override
	protected void setMyType() {
		myType = XML_ELEMENT.UserType.PAZIENTE;
	}
 
}
 
